package jgespres;

/**
 * Description d'un élève
 * 
 * @author guerfyld
 * @version 2.0
 */
public class Student {
    // Description de l'élève
    private int id;
    private String ident;
    private String name;
    private String group;
    private String extra;
    // Ordre dans la liste des élèves
    private int pos;
    
    /**
     * Constructeur
     */
    public Student() {        
        id    = 0;
        ident = jgespres.NULL;
        name  = jgespres.NULL;
        group = jgespres.NULL;
        extra = jgespres.NULL;
        pos   = 0;
    }

    /**
     * Renvoi l'Id. technique de l'élève
     * 
     * @return     Id. technique de l'élève
     */
    public final int getId() {
        return id;
    }

    /**
     * Renvoi l'Identifiant de l'élève
     * 
     * @return     Identifiant de l'élève
     */
    public final String getIdent() {
        return ident;
    }

    /**
     * Renvoi le Nom de l'élève
     * 
     * @return     Nom de l'élève
     */
    public final String getName() {
        return name;
    }

    /**
     * Renvoi le Groupe de l'élève
     * 
     * @return     Groupe de l'élève
     */
    public final String getGroup() {
        return group;
    }

    /**
     * Renvoi les données suplémentaires de l'élève
     * 
     * @return     Données supplémentaires de l'élève
     */
    public final String getExtra() {
        return extra;
    }

    /**
     * Renvoi n° d'ordre de l'éleve dans la classe
     * 
     * @return      N° d'ordre
     */
    public final int getOrderPos() {
        return pos;
    }
    
    /**
     * Renvoi s'il s'agit d'un séparateur
     * 
     * @return      Vrai/Faux
     */
    public final boolean isSeparator() {
        return ident.equals(".");
    }
    
    /**
     * Mise à jour de l'Id. technique de l'élève
     * 
     * @param id     Id. technique de l'élève
     */
    public final void setId(int id) {
        this.id = id;
    }

    /**
     * Mise à jour de l'Identifiant de l'élève
     * 
     * @param ident     Identifiant de l'élève
     */
    public final void setIdent(String ident) {
        this.ident = (ident != null) ? ident.trim() : jgespres.NULL;
    }

    /**
     * Mise à jour du Nom de l'élève
     * 
     * @param name      Nom de l'élève
     */
    public final void setName(String name) {
        this.name = (name != null) ? name.trim() : jgespres.NULL;
    }

    /**
     * Mise à jour du Groupe de l'élève
     * 
     * @param group     Groupe de l'élève
     */
    public final void setGroup(String group) {
        this.group = (group != null) ? group.trim() : jgespres.NULL;
    }

    /**
     * Mise à jour des données suplémentaires de l'élève
     * 
     * @param extra     Données suplémentaires de l'élève
     */
    public final void setExtra(String extra) {
        this.extra = (extra != null) ? extra.trim() : jgespres.NULL;
    }    

    /**
     * Mise à jour n° d'ordre de l'éleve dans la classe
     * 
     * @param order     N° d'ordre
     */
    public final void setOrderPos(int pos) {
        this.pos = pos;
    }
     
    /**
     * Renvoi une chaine décrivant l'objet
     * 
     * @return      Chaine décrivant l'objet.
     */
    public final String toString() {
        return "Student[id="+id+"; ident="+ident+"; name="+name+"; group="+group+"; extra="+extra+"]";
    }
}
